import axios from 'axios';
import qs from 'qs';
import router from '/src/router/index'


//axios.defaults.baseURL = 'https://192.168.2.114:8080/baseProj/'  //接口路径
axios.defaults.baseURL = 'http://127.0.0.1:8080/projectDemo/' 
//post请求头
axios.defaults.headers.post["Content-Type"] ="application/x-www-form-urlencoded;charset=UTF-8";
//axios发送跨域ajax请求时 携带cookie
axios.defaults.withCredentials = true
//设置超时
axios.defaults.timeout = 20000;

//请求
axios.interceptors.request.use(
    config => {

        return config;
    },
    error => {
        return Promise.reject(error);
    }
);
//响应
axios.interceptors.response.use(
    response => {

        //获取code
        let code =response.data.code;
 
        //服务器 给前端的内容
        if (response.status === 200) {
            return Promise.resolve(response);
        } else {
            return Promise.reject(response);
        }
    },
    error => {
        alert(`异常请求：${JSON.stringify(error.message)}`)
    }
);
// export default {
//     //post方法 普通传参
//     post(url, data) {
//         return axios({
//             method: 'post',
//             url,
//             data: qs.stringify(data),//json数据 转换成  name=xiaoming&age=10&address=xxx
//         })
//     },
//     get(url, data) {
//         return axios({
//             method: 'get',
//             url,
//             params: data,//json数据 转换成  name=xiaoming&age=10&address=xxx
//         })
//     }
// }
export default {
    //post方法 普通传参
    post(url, data) {
        return new Promise((resolve, reject) => {
            axios({
                method: 'post',
                url,
                data: qs.stringify(data),//json数据 转换成  name=xiaoming&age=10&address=xxx
            }).then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err)
            });
        })
    },
    //post方法 数组转为 a:[1,2,3]   >>>>   a=1&a=2&a=3
    post2(url, data) {
        return new Promise((resolve, reject) => {
            axios({
                method: 'post',
                url,
                data: qs.stringify(data,{"indices":false}),
            }).then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err)
            });
        })
    },
    //get方法 
    get(url, data) {
        return new Promise((resolve, reject) => {
            
            
            axios({
                method: 'get',
                url,
                params: data,
            }).then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err)
            })
        })
    },
    //post方法 直接传json对象
    postJson(url,data){
        return new Promise((resolve, reject) => {
            axios({
                method: 'post',
                url,
                data: data,
                headers: {
                    'Content-Type': 'application/json',
                }
            }).then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err)
            })
        })
    },
    postFile(url,data){
        return new Promise((resolve, reject) => {
            axios({
                method: 'post',
                url,
                data: data,
                headers: {
                    'Content-Type': 'multipart/form-data',
                }
            }).then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err)
            })
        })
    },
    delete(url, data) {
        return new Promise((resolve, reject) => {
            axios({
                method: 'delete',
                url,
                params: data,
            }).then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err)
            })
        })
    },
    put(url, data) {
        return new Promise((resolve, reject) => {
            axios({
                method: 'put',
                url,
                params: data,
            }).then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err)
            })
        })
    }
};